Async Queue
A queue that executes async tasks in order like mutex and semaphore methodology for javascript and typescript.
Installation
yarn add @alwatr/async-queue
Usage
import {AsyncQueue} from '@alwatr/async-queue';
import {waitForTimeout} from '@alwatr/delay';
const queue = new AsyncQueue();
async function longTask(n) {
console.log('longTask(%s)', n);
await queue.push('longTaskId', async () => {
console.log('longTask %s start', n);
await waitForTimeout(1000);
});
console.log('longTask %s end', n);
}
longTask(1);
longTask(2);
longTask(3).then(() => console.log('longTask 3 resolved'));
longTask(4);
The following companies, organizations, and individuals support Nanolib ongoing maintenance and development. Become a Sponsor to get your logo on our README and website.
Contributing
Contributions are welcome! Please read our contribution guidelines before submitting a pull request.
License
This project is licensed under the AGPL-3.0 License.